#include <windows.h>
#include <bsp.h>
#include "ipl_disp_common.h"
#include "ipl_disp.h"
#include "hisi6810_gpio.h"

void SelSpi2();
extern void Delay(UINT32);
extern void InitSpi2(int);
extern void SspSendData(UINT16 * data, UINT length);


/******************************************************************
  * Copyright (C), 2005-2007, HISILICON Tech. Co., Ltd.             *
  *                                                                *
  * Description:                                              *
  *    LCD RS setting                                 *
  *                                                                 *
  * Author:                                                     *
  *                                                                 *
  * Version: v0.1                                                   *
  *                                                                 *
  * Date: 2006-11                                                          *
  *******************************************************************/

void SetLdi()
{
	set32(LCDTiming0, 0x0f0f0f38);
	
	set32(LCDTiming1, 0x0808153f);
	
	set32(LCDTiming2, 0xef5802);
      	
	set32(LCDTiming3, 0x0);   //disable Line-end control register
	
	set32(LCDUPBASE, EDC_LCD_SLAVE);
	
	set32(LCDControl, 0x82b);
}

void InitLcm(void)
{
	/***********sample test**************/
	SelSpi2();//SPI2 cs

    GpioSetDirection(GPIO_2_5, EGPIO_DIR_OUTPUT);
    GpioSetValue(GPIO_2_5, EGPIO_DATA_HIGH); 
    Delay(4);

    GpioSetDirection(GPIO_2_5, EGPIO_DIR_OUTPUT);
    GpioSetValue(GPIO_2_5, EGPIO_DATA_LOW); 
    Delay(10);

	GpioSetDirection(GPIO_2_5, EGPIO_DIR_OUTPUT);
    GpioSetValue(GPIO_2_5, EGPIO_DATA_HIGH); 
    Delay(4);

	/*********************************/
	InitSpi2(7);
	SspSendData(powerOnData1, sizeof(powerOnData1) >> 1);
    Delay(10);
    SspSendData(powerOnData2,sizeof(powerOnData2) >> 1);
    Delay(10);
    SspSendData(powerOnData3,sizeof(powerOnData3) >> 1);
    Delay(10);
    SspSendData(powerOnData4,sizeof(powerOnData4) >> 1);
    Delay(10);
    SspSendData(powerOnData5,sizeof(powerOnData5) >> 1);
    SspSendData(powerOnData6,sizeof(powerOnData6) >> 1);
}

